The present invention relates to the field of interface boards for a computer system. More particularly, the present invention relates to a method for enabling value-added hardware on a peripheral controller interface (PCI) board in a computer system.
Presently, a standard peripheral controller interface (PCI) board, such as an OHCI 1394 controller board, is used in a computer system for interfacing the computer system to a peripheral device, such as a disk drive or video equipment. Published standards define the various standard functions and features provided by such a PCI board. Accordingly, all interfacing between a computer system and a standard serial bus controller PCI board is performed through a standard general-purpose device driver that is usually provided as part of the operating system of the computer.
The standard-function nature of a standard controller board makes it unattractive for many vendors to add value-added features and hardware, such as a proprietary digital signal processing (DSP) function, to a PCI board. Any additional functions and/or features that a vendor may add to a standard PCI board must be accessed through the standard general-purpose top-level device driver provided by the operating system of the computer. Consequently, other interface board vendors can easily duplicate the value-added features, and produce equivalent value-added PCI boards for less cost than a vendor who introduces innovative functions and features to the marketplace.
What is needed is a way for an interface board vendor to produce a controller board providing standard interface functions, in addition to value-added functions, thereby differentiating the vendor""s interface controller board from other vendors"" interface controller boards. Additionally, what is needed is a way to enable value-added hardware on an interface controller board that provides standard interface functions.
The present invention provides a way for an interface board vendor to produce an interface controller board providing standard interface functions and value-added functions, such as proprietary DSP functions, thereby differentiating the vendor""s interface controller board from other vendors"" interface controller boards. Additionally, the present invention provides a way to enable value-added hardware on an interface board that provides standard interface functions. Another advantage provided by the present invention is that access to the value-added hardware can be controlled through a special handshaking procedure, thereby allowing operation of the value-added hardware only when the interface controller board is in a predetermined state. Another advantage of the present invention is that a controller board vendor is not required to provide a value-added device component driver that is coordinated with the general-purpose device driver for the controller board. Further, a new value-added device driver is not required when the standard functions associated with the interface controller board are updated based on a new version of the standard governing interface board.
The advantages of the present invention are provided by a method for enabling value-added hardware on an interface board in a computer system. According to the present invention, it is first determined whether an interface board is connected to a bus of a computer system. Then, a general-purpose top-level device driver, which controls standard functions associated with the interface board, is loaded into kernel memory space of the computer system when the interface board is determined to be connected to the bus of the computer system. The general-purpose top-level device driver controls standard functions associated with the interface board. A value-added device driver is loaded into memory of the computer system when the interface board is determined to be connected to the bus of the computer system. The value-added device driver corresponds to the interface board determined to be connected to the bus of the computer system. Actually, the vendor-supplied driver is loaded always for particular model of the PCI card. The value-added device driver can be loaded into memory as a filter driver so that it does not conflict with the general-purpose top-level device driver. Alternatively, a value-added device driver can be loaded into memory when a device is plugged in to an external port on the interface board. Predetermined information, such as a password, or confidential or cryptographic information, is then stored at a predetermined address within a memory space of the value-added hardware, and a predetermined response is received from the value-added hardware based on the predetermined information. Access to the value-added hardware is enabled through the value-added device driver when the predetermined response is an expected response. According to the invention, the value-added device driver can be loaded into kernel memory of the computer, or can be part of an application program that is loaded into user memory of the computer.